package com.suning.sawp.intf.store;

import java.util.List;

import com.suning.sawp.dto.region.RegionDto;
import com.suning.sawp.intf.model.BranchInfo;
import com.suning.sawp.po.store.StaffInfo;
import com.suning.sawp.po.store.StoreInfo;

/**
 * 
 * 门店数据<br> 
 * 〈功能详细描述〉
 *
 * @author 13071470
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface StoreInfoService {

    
    /**
     * 
     * 功能描述:根据门店编码查询门店数据 <br>
     * 〈功能详细描述〉
     *
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    StoreInfo queryStoreByCode(String storeCode);
    
    /**
     * 功能描述: 查询所有大区<br>
     * 〈功能详细描述〉
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<RegionDto> queryAllRegions();
    
    /**
     * 功能描述: 根据大区编码查询店铺<br>
     * 〈功能详细描述〉
     *
     * @param regionCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<StoreInfo> queryStoresByRegionCode(String regionCode);
    
    /**
     * 
     * 功能描述: 查询大区下的分公司<br>
     * 〈功能详细描述〉
     *
     * @param regionCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<BranchInfo> queryBranchByRegionCode(String regionCode);
    
    /**
     * 
     * 功能描述: 查询分公司下的门店<br>
     * 〈功能详细描述〉
     *
     * @param branchCode
     * @param type
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<StoreInfo> queryStoresByBranchCode(String branchCode,Integer type);
    /**
     * 
     * 功能描述: 根据门店类型查询门店列表<br>
     * 〈功能详细描述〉
     *
     * @param storeTypeCode
     * @param regionCode
     * @param unequalStoreTypeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<StoreInfo> queryStoreByStoreType(String storeTypeCode,String regionCode, String saleBranchCode,String storeCode,boolean equalType);
    /**
     * 
     * 功能描述: 根据门店编码查询门店信息列表<br>
     * 〈功能详细描述〉
     *
     * @param storeCodes
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<StoreInfo> queryStoreByStoreCodes(List<String> storeCodes);
    
    /**
     * 查询所有店铺数据
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<StoreInfo> queryAllStore();

    /**
     * 根据销售分公司编码查询分公司编码
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param branchCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    StoreInfo queryBranchCodeBySaleCode(String branchCode);
    
    /**
     * 根据员工信息
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    StaffInfo queryStaffInfoByStaffId(String staffId);

    
    /**
     * 更新店员岗位信息
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param positionName
     * @param positionId
     * @param staffid
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    boolean updatePositionInfo(String roleType,String orgId,String positionName, String positionId, String staffid);
}
